/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Objekte;

import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
import logging.Logger;

/**
 * List model für auktionen
 * nur wichtig für den user zur anzeige
 * einziger wichtiger wert für das System ist die auktionId
 * @author benji
 */
public class AuctionListModel extends AbstractTableModel {
    private String[] columns = new String[] {"ID", "Produkt", "Veranstalter", "laeuft bis..."};
    private ArrayList<AuctionProdukt> data = new ArrayList<AuctionProdukt>();

    /**
     * speichert die Auktionsliste
     */
    public void setData(ArrayList<AuctionProdukt> data){
        this.data = data;
        Logger.debug("Arraylist für Auktion gefüllt");
        fireTableDataChanged();
    }

    /**
     * fügt zu auktions liste ein Produkt hinzu
     * @param p hinzuzufügendes Produkt
     */
    public void addProdukt(AuctionProdukt p){
        data.add(p);
        Logger.debug("Füge Auktion hinzu");
        fireTableRowsInserted(data.size(), data.size());
    }

    public AuctionProdukt getRow(int i) {
        return data.get(i);
    }

    @Override
    public int getRowCount() {

        return this.data.size();
    }

    @Override
    public int getColumnCount() {
        return this.columns.length;
    }

    @Override
    public String getColumnName(int i){
        return this.columns[i];
    }

    @Override
    public Object getValueAt(int row, int column) {
        AuctionProdukt p = data.get(row);
        switch(column){
            case 0: return p.getAuctionid();
            case 1: return p.getProduct();
            case 2: return p.getPerson();
            case 3: return p.getTtl();
            default: return null;
        }
    }

    @Override
    public Class getColumnClass(int i){
        switch(i){
            case 0: return Integer.class;
            case 1: return String.class;
            case 2: return String.class;
            case 3: return String.class;
            default: return null;
        }
    }

    @Override
    public void setValueAt(Object value, int row, int col) {
    }
}
